package com.jeeplus.test.jlnu.admissionInfo.domain.vo;


import com.alibaba.excel.annotation.ExcelIgnore;
import com.alibaba.excel.annotation.ExcelProperty;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.jeeplus.test.education.domain.entity.QueryCondition;
import com.jeeplus.test.education.domain.vo.EducationInfoVo;
import com.jeeplus.test.jlnu.admissionInfo.domain.entity.AdmissionInfo;
import com.jeeplus.test.jlnu.deanOffice.domain.vo.JlnuDeansOfficeDto;
import com.jeeplus.test.postgraduate.domain.vo.PostgraduateReqVo;
import lombok.Data;

import javax.persistence.Column;
import java.util.Date;
import java.util.List;

@JsonInclude(JsonInclude.Include.ALWAYS)
@Data
public class AdmissionInfoReqVo {

    private Integer id;

    private String belonging;

    @ExcelProperty("档号")
    private String archivalNum;

    @ExcelProperty("案卷题名")
    private String caseTitle;

    @ExcelProperty("文件标题")
    private String fileTitle;

    @ExcelProperty("存储位置")
    private String saveLocation;

    @ExcelProperty("所在页")
    private String pageLocation;

    @ExcelProperty("页面序号")
    private String pageNum;

    @ExcelProperty("考生号")
    private String examineeNum;

    @ExcelProperty("准考证号")
    private String admissionNum;

    @ExcelProperty("学号")
    private String studentId;

    @ExcelProperty("姓名")
    private String name;

    @ExcelProperty("性别")
    private String gender;

    @JsonFormat(pattern = "yyyy-MM-dd")
    @ExcelProperty("出生日期")
    private Date birthday;

    @ExcelProperty("政治面貌")
    private String politicalOutlook;

    @ExcelProperty("民族")
    private String nation;

    @ExcelProperty("身份证号码")
    private String idCard;

    @ExcelProperty("计划性质")
    private String planNature;

    @ExcelProperty("录取学校")
    private String admissionSchools;

    @ExcelProperty("录取学院")
    private String admissionAcademy;

    @ExcelProperty("录取专业")
    private String admissionMajor;

    @ExcelProperty("录取时间")
    private String admissionTime;

    @ExcelProperty("层次")
    private String gradation;

    @ExcelProperty("学制")
    private String educationalSystem;

    @ExcelProperty("学习形式")
    private String learningForms;

    @ExcelProperty("考生类别")
    private String examineeSort;

    @ExcelProperty("批次")
    private String batch;

    @ExcelProperty("毕业学校")
    private String graduationSchool;

    @ExcelProperty("生源地")
    private String sourceArea;

    @ExcelProperty("地区名称")
    private String areaName;

    @ExcelProperty("家庭（邮寄）地址")
    private String homeAddress;

    @ExcelProperty("邮政编码")
    private String postalCode;

    @ExcelProperty("联系电话")
    private String phoneNum;

    @ExcelProperty("信息源")
    private String infoSource;

    @ExcelProperty("备注")
    private String remarks;
    @ExcelIgnore
    @ExcelProperty("拓展字段一")
    private String ext1;
    @ExcelIgnore
    @ExcelProperty("拓展字段二")
    private String ext2;
    @ExcelIgnore
    @ExcelProperty("拓展字段三")
    private String ext3;
    @ExcelIgnore
    @ExcelProperty("拓展字段四")
    private String ext4;
    @ExcelIgnore
    @ExcelProperty("拓展字段五")
    private String ext5;
    @ExcelIgnore
    @ExcelProperty("拓展字段六")
    private String ext6;
    @ExcelIgnore
    @ExcelProperty("拓展字段七")
    private String ext7;
    @ExcelIgnore
    @ExcelProperty("拓展字段八")
    private String ext8;
    @ExcelIgnore
    @ExcelProperty("拓展字段九")
    private String ext9;
    @ExcelIgnore
    @ExcelProperty("拓展字段十")
    private String ext10;
    @ExcelIgnore
    @ExcelProperty("拓展字段十一")
    private String ext11;
    @ExcelIgnore
    @ExcelProperty("拓展字段十二")
    private String ext12;
    @ExcelIgnore
    @ExcelProperty("拓展字段十三")
    private String ext13;
    @ExcelIgnore
    @ExcelProperty("拓展字段十四")
    private String ext14;
    @ExcelIgnore
    @ExcelProperty("拓展字段十五")
    private String ext15;
    @ExcelIgnore
    @ExcelProperty("拓展字段十六")
    private String ext16;
    @ExcelIgnore
    @ExcelProperty("拓展字段十七")
    private String ext17;
    @ExcelIgnore
    @ExcelProperty("拓展字段十八")
    private String ext18;
    @ExcelIgnore
    @ExcelProperty("拓展字段十九")
    private String ext19;
    @ExcelIgnore
    @ExcelProperty("拓展字段二十")
    private String ext20;
    //班级号
    @ExcelIgnore
    private String classId;
    @ExcelIgnore
    private String category;

    @ExcelProperty("档案馆代码")
    private String archiveCode;

    @ExcelProperty("全宗号")
    private String fullSetCode;

    @ExcelProperty("门类代码")
    private String categoryCode;

    @ExcelProperty("类别号")
    private String categoryId;

    @ExcelProperty("项目号")
    private String projectId;

    @ExcelProperty("目录号")
    private String directoryCode;

    @ExcelProperty("年度")
    private String annual;

    @ExcelProperty("保管期限代码")
    private String retentionPeriodCode;

    @ExcelProperty("机构")
    private String institution;

    @ExcelProperty("案卷号")
    private String caseNumber;

    @ExcelProperty("件号")
    private String itemNumber;


    @ExcelProperty("文件标题")
    private String documentTitle;

    @ExcelProperty("日期")
    private Date dateTime;

    @ExcelProperty("责任者")
    private String responsiblePerson;

    @ExcelProperty("规格")
    private String specification;

    @ExcelProperty("件数")
    private Integer itemCount;

    @ExcelProperty("页数")
    private Integer pageCount;

    @ExcelProperty("保管期限")
    private String retentionPeriod;

    @ExcelProperty("密级")
    private String confidentialityLevel;

    @ExcelProperty("公开属性")
    private String disclosureAttribute;

    @ExcelProperty("开放标识")
    private Integer openFlag;

    @ExcelProperty("附注")
    private String remark;

    @ExcelProperty("关键词")
    private String keywords;

    @ExcelProperty("存储位置")
    private String storageLocation;

    @ExcelProperty("著录者")
    private String cataloger;

    @ExcelProperty("著录日期")
    private Date catalogDate;

    @ExcelProperty("归档单位")
    private String archivingUnit;

    @ExcelProperty("归档人")
    private String archiver;

    @ExcelProperty("归档时间")
    private Date archiveTime;

    @ExcelProperty("电文文件")
    private String electronicDocument;

    @ExcelProperty("电文文件元数据")
    private String electronicDocumentMetadata;

    @ExcelProperty("备注")
    private String notes;
    private String officeId;
    private List<String> officesList;
    private String approveState;
    private List<String> approveStateList;

    //转入状态
    private String transferState;

    //备注
    private String transferRemarks;

    private List<String> transferStateList;

    private String year;

    private String userId;

    private List<AdmissionInfo> admissionInfoList;

    private List<QueryCondition> conditions;

    //数据类型（1：教务处，2：研究生，3：继续教育）
    private String recordType;

    //动态表名
    private String tableName;

    private JlnuDeansOfficeDto jlnuDeansOffice;
    private PostgraduateReqVo postgraduate;
    private EducationInfoVo educationInfo;

    private String studentIdField;  // 学号字段名（如 "xh"）
    private String examineeNumField; // 考生号字段名（如 "zkzh"）
    private String admissionNumField; // 准考证号字段名（如 "ksh"）
    private String source;
}
